const fs = require('fs');
const path = require('path');

// 修复API文件结构的函数
function fixApiStructure() {
  const apiDirs = [
    './src/api/user',
    './src/api/media',
    './src/api/study',
    './src/api/mall',
    './src/api/cart',
    './src/api/ai',
    './src/api/search',
  ];

  apiDirs.forEach(apiDir => {
    const nestedApiDir = path.join(apiDir, 'api');
    
    if (fs.existsSync(nestedApiDir)) {
      console.log(`修复 ${apiDir} 的文件结构...`);
      
      // 移动文件到父目录
      const files = fs.readdirSync(nestedApiDir);
      files.forEach(file => {
        const srcPath = path.join(nestedApiDir, file);
        const destPath = path.join(apiDir, file);
        fs.renameSync(srcPath, destPath);
      });
      
      // 删除空的api目录
      fs.rmdirSync(nestedApiDir);
      console.log(`✅ ${apiDir} 文件结构修复完成`);
    }
  });
}

// 修复生成的代码中的问题
function fixGeneratedCode() {
  const apiDirs = [
    './src/api/user',
    './src/api/media',
    './src/api/study',
    './src/api/mall',
    './src/api/cart',
    './src/api/ai',
    './src/api/search',
  ];

  apiDirs.forEach(apiDir => {
    if (fs.existsSync(apiDir)) {
      const files = fs.readdirSync(apiDir);
      files.forEach(file => {
        if (file.endsWith('.ts') && !file.endsWith('.d.ts')) {
          const filePath = path.join(apiDir, file);
          let content = fs.readFileSync(filePath, 'utf-8');
          
          // 移除 requestType: 'form' 属性
          content = content.replace(/requestType:\s*['"]form['"],?\s*/g, '');
          
          fs.writeFileSync(filePath, content);
        }
      });
      console.log(`✅ ${apiDir} 代码修复完成`);
    }
  });
}

// 执行修复
console.log('开始修复API生成的文件结构...');
fixApiStructure();
fixGeneratedCode();
console.log('✅ API文件结构修复完成！');
